<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Javascript</title>
</head>
<body>
    <pre>
        ECMAScript：
        (10) 循环结构
                反复执行语句的一种机制
             循环三要素：
                一：循环条件
                        写在()里的返回布尔类型的表达式。
                        当循环条件为false表示终止循环
                        当循环条件为true表示循环继续
                二：循环操作(循环体)
                        写在{}里的执行语句。
                        只需要写一次通用代码即可，剩余循环次数由循环结构触发
                        只有当执行语句需要反复执行才需要放到{}内，否则不要放到{}内
                三：矢量变更   
                        矢量指改变条件的变量，变更表示改变条件变量数据
                        用于改变循环条件，趋向于条件不满足，从而终止循环，避免死循环
             解题思路：
                (1)分析题目是否有重复执行代码
                (2)分析使用什么循环
                      循环次数固定       for循环
                      次数不固定先判断    while循环
                      次数不固定先执行    do-while循环
                (3)分析循环特征：
                     [1]循环条件：
                          《1》将条件转变为数值的递增或递减  
                          《2》将条件转变为数值或字符串的判断
                     [2]循环操作
                           重复执行的代码在{}里写一次即可
                     [3]矢量变更
                           改变循环条件  
             分类：
                while循环
                do-while循环
                for循环
             while语法：
                while(返回布尔类型表达式){
                    循环操作
                    矢量变更
                }
                执行顺序：
                     判断循环条件
                     条件为true执行循环体[包含执行矢量变更]
                     回到判断循环条件
                特点： 
                    先判断后执行
            do-while语法：
                do{
                    循环操作
                    矢量变更
                }while(返回布尔类型表达式);
                执行顺序：
                     执行{}循环体
                     判断循环条件
                     条件为true回到执行循环体[包含执行矢量变更]
                特点： 
                    先执行一次再判断
            for语法：
                for(表达式一写变量初始化; 表达式二写返回布尔类型的条件; 表达式三写矢量变更){
                    循环操作
                }
                注意：单个表达式都可以省略。
                     表达式一省略，导致循环条件的变量不可用，从而报错
                     表达式二省略，循环不报错，但是由于没有条件，循环会默认条件为true，导致死循环
                     表达式三省略，循环不报错，但是由于没有矢量变更，条件始终满足，导致死循环
                     分号不能省
                执行顺序：
                    表达式一 --> 表达式二 --> 循环操作 --> 表达式三 --> 表达式二
                特点：
                    先判断后执行
                    常用于循环次数固定
            
            循环之间是可以相互转换的。
    </pre>           

    <script type="text/javascript" src="js/chapter3.js"></script>
</body>
</html>